Versi 1
| Field | Isi |
|---|---|
| Dokumen ID | VBS-BRD-005 |
| Deskripsi | Manajemen user brand: melihat user yang punya akses ke brand, mengundang user atau karyawan lewat email dengan role, PIN mobile, dan akses cabang, serta membatasi data sesuai akses cabang user |
| Nomor Revisi | 1 |
| Tanggal | 2026-10-04 |
| Keterangan | Dokumentasi baseline dari dokumentasi fitur demo dan kode FE |
1. Ringkasan
a. In scope
- Owner atau admin brand dapat melihat daftar user dalam brand beserta undangan yang masih tertunda.
- Owner atau admin brand dapat mengundang user lain (misalnya karyawan) dengan email, PIN mobile, role, dan akses gudang atau cabang.
- User dapat mengundang karyawan lewat email langsung dari daftar user di form gudang, lalu undangan tertaut ke data karyawan.
- Owner atau admin brand dapat mengubah akses user (role dan cabang) atau menonaktifkan user.
- Sistem membatasi data transaksi user non admin hanya pada gudang atau cabang yang diizinkan.
- Daftar user brand dipakai sebagai pilihan di berbagai form dan filter laporan (misalnya sales, kasir, pemeriksa).
b. Catatan
c. Kesimpulan
- [FE] -
- [BE] -
2. Functional Requirement
| Kode | Deskripsi |
|---|---|
| FR-01 | Sistem menampilkan daftar user brand dan undangan yang tertunda |
| FR-02 | User dapat mengundang user baru dengan email, PIN mobile, role, dan akses cabang |
| FR-03 | Sistem mengirim email undangan dan menautkan undangan ke data karyawan |
| FR-04 | User dapat mengubah role dan akses cabang user atau menonaktifkannya |
| FR-05 | Sistem memuat akses gudang user non admin dan membatasi data sesuai akses tersebut |
| FR-06 | Sistem menyediakan daftar user aktif brand sebagai pilihan di form dan laporan |
3. Use Case List
| Kode | Deskripsi |
|---|---|
| UC-01 | Melihat daftar user dalam brand |
| UC-02 | Mengundang user ke brand |
| UC-03 | Mengundang karyawan lewat email dari form gudang |
| UC-04 | Mengelola akses user brand |
| UC-05 | Membatasi data sesuai akses cabang user |
| UC-06 | Memilih user brand di form dan filter |
4. Use Case Scenario
UC-01 : Melihat daftar user dalam brand
| Aktor | Owner / admin brand |
| Deskripsi | User melihat siapa saja yang punya akses ke brand |
| Prekondisi | User membuka Kelola Brand, tab User di Accounts |
| Alur utama | 1. User memilih Tambah User di menu akun. 2. Sistem membuka tab User. 3. Sistem menampilkan daftar user brand dan undangan yang belum diterima. |
| Alur negatif | - Jika user bukan owner atau admin brand, pengelolaan user tidak tersedia. - Jika gagal memuat, daftar user kosong. |
| Bisnis rule | - Data user dan undangan bisa dimuat bersamaan (with_user dan with_invitation). |
| Postkondisi | Daftar user brand tampil |
| Trigger | User membuka tab User |
| Kode FR | FR-01 |
UC-02 : Mengundang user ke brand
| Aktor | Owner / admin brand |
| Deskripsi | User memberi akses brand ke orang lain |
| Prekondisi | Role brand sudah tersedia |
| Alur utama | 1. User memilih Invite User. 2. User mengisi email, PIN mobile, memilih role, dan memilih akses gudang atau cabang. 3. User mengirim undangan. 4. Sistem mengirim email undangan. 5. Penerima menerima undangan lalu bergabung ke brand. |
| Alur negatif | - Jika email kosong, undangan tidak dikirim. - Jika pengiriman gagal, muncul pesan error. |
| Bisnis rule | - PIN mobile dipakai untuk akses aplikasi mobile Vobis. - Gudang dan cabang dianggap setara. - Role menentukan hak akses menu (lihat VBS-BRD-004). |
| Postkondisi | Undangan terkirim dan tercatat sebagai undangan tertunda |
| Trigger | User mengirim form invite |
| Kode FR | FR-02 FR-03 |
UC-03 : Mengundang karyawan lewat email dari form gudang
| Aktor | User brand dengan akses gudang |
| Deskripsi | User mengundang karyawan yang belum punya akun langsung dari daftar user gudang |
| Prekondisi | User membuka form tambah atau ubah gudang Karyawan sudah dipilih dan belum punya akun |
| Alur utama | 1. User memilih karyawan pada baris daftar user. 2. User menekan tombol undang. 3. Sistem membuka modal "Undang" dengan keterangan "Pesan undangan akan dikirimkan melalui email." 4. User mengisi email lalu menekan "Kirim Undangan". 5. Sistem mengirim undangan dan menautkan id undangan ke data karyawan. 6. Baris karyawan ditandai belum terdaftar. |
| Alur negatif | - Jika email kosong, tombol kirim tidak memproses apa pun. - Jika pengiriman gagal, modal ditutup tanpa menyimpan tautan. - Tombol undang nonaktif jika karyawan belum dipilih atau sudah punya username. |
| Bisnis rule | - Hanya user brand yang aktif yang muncul di pilihan username. - Undangan tertaut ke karyawan lewat email_invitation_id. |
| Postkondisi | Undangan terkirim dan karyawan menunggu pendaftaran |
| Trigger | User menekan Kirim Undangan |
| Kode FR | FR-03 |
UC-04 : Mengelola akses user brand
| Aktor | Owner / admin brand |
| Deskripsi | User mengubah role atau akses cabang user, atau menonaktifkannya |
| Prekondisi | User sudah tergabung di brand |
| Alur utama | 1. User memilih user dari daftar. 2. User mengubah role atau akses gudang dan cabang, atau menonaktifkan user. 3. User menyimpan. 4. Sistem menyimpan perubahan akses. |
| Alur negatif | - Jika penyimpanan gagal, muncul pesan error. |
| Bisnis rule | - User nonaktif tidak muncul di pilihan user aktif di Books. - Owner brand dan admin brand tidak dibatasi akses gudang. |
| Postkondisi | Akses user terbarui |
| Trigger | User menyimpan perubahan akses |
| Kode FR | FR-04 |
UC-05 : Membatasi data sesuai akses cabang user
| Aktor | System |
| Deskripsi | Sistem memuat daftar gudang yang boleh diakses user non admin |
| Prekondisi | User membuka brand di Books |
| Alur utama | 1. Sistem memeriksa apakah user owner, admin brand, atau admin Vobis. 2. Jika bukan, sistem memuat akses gudang user. 3. Sistem menyimpan daftar gudang dan memakainya sebagai filter di daftar dan form. |
| Alur negatif | - Jika gagal memuat akses gudang, daftar gudang user dikosongkan. |
| Bisnis rule | - Owner brand, admin brand, dan admin Vobis melihat semua gudang. - Admin Vobis tidak mendapat filter gudang. |
| Postkondisi | Data user terbatas pada gudang yang diizinkan |
| Trigger | User membuka brand |
| Kode FR | FR-05 |
UC-06 : Memilih user brand di form dan filter
| Aktor | User brand |
| Deskripsi | User memilih user brand sebagai sales, kasir, atau pemeriksa |
| Prekondisi | User membuka form transaksi atau filter laporan yang punya pilihan user |
| Alur utama | 1. User membuka dropdown user. 2. Sistem memuat daftar user brand. 3. User memilih user. |
| Alur negatif | - Jika gagal memuat, dropdown kosong. |
| Bisnis rule | - Hanya user dengan status aktif di brand yang ditampilkan. |
| Postkondisi | User terpilih di form atau filter |
| Trigger | User membuka dropdown user |
| Kode FR | FR-06 |
5. Data Flow Diagram
DFD-01
6. Sequence Diagram
SD-01 — UC-01 : Melihat daftar user dalam brand
SD-02 — UC-02 : Mengundang user ke brand
SD-03 — UC-03 : Mengundang karyawan lewat email dari form gudang
SD-04 — UC-04 : Mengelola akses user brand
SD-05 — UC-05 : Membatasi data sesuai akses cabang user
SD-06 — UC-06 : Memilih user brand di form dan filter
7. Table Schema
8. API Schema
| Endpoint | Status | Perubahan |
|---|---|---|
GET /brand/all-users | existing | - |
POST /auth/invitation | existing | - |
PUT /karyawan/:id | existing | - |
GET /brand-users/check-user-akses | existing | - |